iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 21
0

SVM(support vector machine)支撐向量機,這個模型是在神經網路之前效果最好的模型。除了有利用到kernel function,更有漂亮的數學解,也因此可解釋性比神經網路好很多。

SVM提出了Margin這個想法,他去找Margin最大的分類邊界來分類,這樣的作法會讓分類結果更加的強健(robust),最大的margin其實可以反映到以前提過的regularization的意義。所以什麼是margin呢?margin就是離分類邊界最近的點,那一個點與分類邊緣的距離。也就是下面這個圖片所示(圖片出自:PRML - p327)

今天跟大家介紹要怎麼計算這個margin。我們先定義分類邊界這個超平面(hyperplane)

y = 0 所構成的超平面就是我們的分類邊界,也就是資料帶入這個式子之中,是正是負都對應到一個類別,所以剛好就是二元分類。

所以我們要計算的就是某一個資料向量,到這個超平面的距離。首先我們先知道,這個超平面的法向量,就會是 w ,而向量到超平面的距離,就會是向量投影到法向量之後的長度,減去超平面上隨便一個向量投影到法向量上的長度。也就是可以寫成

x是資料向量,x'是平面上隨便一個向量。

簡單的利用投影公式可以算出來

不過我們不喜歡絕對值,所以把他改寫成

知道距離之後,我們就知道margin會是

min 的 n 也就是找那些離邊界最近的點,而這個式子的輸出就是我們的margin,而這幾天要跟大家介紹的SVM就是從這個式子開始做推導,先導出簡單針對線性可分資料的hard margin SVM,再推廣到soft margin SVM,甚至用來做regression。

至於二元分類的SVM要怎麼推廣到多元分類?都是利用很多個分類邊界組成,不過主要還是分有兩種方式

  • one versus all:每一類有一個分類邊界,分為是這類與不是這類,所以 n 類別就會有 n 個邊界。
  • one versus one:每一類都有另外任何一類有一個分類邊界,最後所有的邊界,以投票的方式決定是哪一類別,所以有 n 取2個分類邊界。

所以明天開始的介紹會以二元分類來跟大家介紹,而實做的時候會做三個類別的分類給大家參考。


上一篇
kernel method - 動手做看看 Gaussian Process篇
下一篇
SVM - Hard Margin
系列文
機器學習你也可以 - 文組帶你手把手實做機器學習聖經30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言